package string

//找出needle字符串在haystack字符串中的第一个位置,不存在返回-1
//例如:	i:=Strstr("hello","lo"),返回3
func Strstr(haystack, needle string) int {
	haystackByte := []rune(haystack)
	m := len(haystackByte)
	n := len(needle)
	//长度为0,或者字符长度大于父串
	if m == 0 || n == 0 || n > m {
		return -1
	}
	//滑动窗口形式,最后结束位置是m-n,例如:[hello] 字串[aa] 父串结束是[lo]
	for i := 0; i <= m-n; i++ {
		//获取的字串,是当前索引位置加上needle长度
		subStr := haystackByte[i : i+n]
		if string(subStr) == needle {
			return i
		}
	}
	return -1
}
